﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Ribbon;
using DevExpress.Xpf.Layout.Core;
using DevExpress.Xpf.Docking;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Printing;
using System.Windows.Forms;
using System.IO;
using BHYT.ListTemp;
using BHYT.Server.Bll;
using BHYT.Server;
using BHYT.Common;

namespace BHYT
{
    public partial class MainWindow : DXWindow
    {

        #region Fields

        DmDonViBll dmDonViBll;
        string chuoiMailTo;
        List<FileThuMuc> listAttachMent;

        #endregion

        #region Properties

        #endregion

        #region Constructor

        public MainWindow()
        {
            InitializeComponent();
            dmDonViBll = new DmDonViBll();
            KhoiTaoForm();
        }

        #endregion

        #region Events

        private void btnDuongDan_DefaultButtonClick(object sender, RoutedEventArgs e)
        {
            var dialog = new FolderBrowserDialog();
            DialogResult result = dialog.ShowDialog();
            if (result.ToString().Equals("OK"))
            {
                string duongDan = dialog.SelectedPath;
                ThietLapLaiDuongDanThuMuc(duongDan);
                LayFileTrongThuMuc(duongDan);
            }
        }

        private void btnDong_Click(object sender, RoutedEventArgs e)
        {

        }

        private void btnXoaNoiDung_Click(object sender, RoutedEventArgs e)
        {

        }

        private void btnGuiMail_Click(object sender, RoutedEventArgs e)
        {
            if (String.IsNullOrEmpty(txtTo.Text))
            {
                DXMessageBox.Show("Chưa có email người nhận", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            if (String.IsNullOrEmpty(txtFrom.Text))
            {
                DXMessageBox.Show("Chưa có email người gửi", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            if (String.IsNullOrEmpty(txtSubject.Text))
            {
                DXMessageBox.Show("Vui lòng nhập tiêu đề email.", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            if (String.IsNullOrEmpty(ucRichEdit.txtContent.Text))
            {
                DXMessageBox.Show("Vui lòng nhập nội dung email", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            List<string> arrayMail = txtTo.Text.Split(';').ToList();
            foreach (var emailTo in arrayMail)
	        {
                if (emailTo.Trim() != "") //ko dung chuoi cuoi cung
                {
                    string result = Emailer.SendMessageWithAttachment(emailTo, txtFrom.Text, txtSubject.Text
                                                                  , ucRichEdit.txtContent.Text
                                                                  , listAttachMent.Where(u => u.Email == emailTo).Select(u => u.FileCanGui).FirstOrDefault());
                }
	        }
            DXMessageBox.Show("Gửi mail thành công", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                
        }

        #endregion

        #region Method

        public void KhoiTaoForm()
        {
            txtFrom.Text = BHYTGlobal.NguoiDungDangNhap.Email;
        }

        private void ThietLapLaiDuongDanThuMuc(string duongDan)
        {
            string haiChuDau = duongDan.Substring(0, 2);
            string nhungChuSau = duongDan.Substring(2, duongDan.Length - 2);
            btnDuongDan.Text = haiChuDau + nhungChuSau.Replace("\\", @"\");
        }

        public void LayFileTrongThuMuc(string duongDan)
        {
            listAttachMent = new List<FileThuMuc>();
            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(duongDan);
            //to retrieve aspx files alone
            FileInfo[] rgFiles = di.GetFiles("*.xls");
            List<FileThuMuc> listFile = new List<FileThuMuc>();
            foreach (FileInfo fi in rgFiles)
            {
                if(fi.Name.Length > 8) //File có độ dài lớn hơn 8 thì mới phân tích và đưa vào danh sách
                {
                    FileThuMuc file = new FileThuMuc
                    {
                        TenFile = fi.Name,
                        DuongDanFile = duongDan + fi.Name
                    };
                    string ngayThangTrongTenFile = fi.Name.Substring(0, 8);
                    string maDonViTrongTenFile = fi.Name.Substring(8, fi.Name.IndexOf('.') - 8);
                    Dm_DonVi dmDonVi = dmDonViBll.RetrieveDmDonViById(maDonViTrongTenFile);
                    if(dmDonVi != null) //tìm thấy đơn vị
                    {
                        file.MaDonVi = dmDonVi.MaDonVi;
                        file.TenDonVi = dmDonVi.TenDonVi;
                        file.Email = dmDonVi.Email;
                        file.FileCanGui = fi;
                        listFile.Add(file);
                        chuoiMailTo = String.Format("{0}{1};", chuoiMailTo, dmDonVi.Email).Trim();
                        listAttachMent.Add(file);
                    }
                }
            }
            gridFileGui.ItemsSource = listFile;
            gridFileGui.RefreshData();
            txtTo.Text = chuoiMailTo;
        }

        #endregion
    }
}
